using AnQinFrameWorkAPI.Entity.BaseInfo.Entity;
using AnQinFrameWorkAPI.Entity.Blog.Entity;
using AnQinFrameWorkAPI.Entity.Develop.Entity;
using AnQinFrameWorkAPI.Entity.Finance.Entity;
using AnQinFrameWorkAPI.Entity.SystemCore.Entity;
using Microsoft.EntityFrameworkCore;

namespace AnQinFrameWorkAPI.DataBase;

public class DatabaseContext : DbContext
{
    public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
    {
    }

    #region 系统

    //菜单
    public DbSet<MenuModel> Menu { get; set; }

    //菜单按钮
    public DbSet<MenuButtonModel> MenuButton { get; set; }

    //菜单字段
    public DbSet<MenuFieldModel> MenuField { get; set; }

    //角色
    public DbSet<RoleModel> Role { get; set; }

    //角色菜单
    public DbSet<RoleMenuModel> RoleMenu { get; set; }

    //角色按钮
    public DbSet<RoleButtonModel> RoleButton { get; set; }

    //角色字段
    public DbSet<RoleFieldModel> RoleField { get; set; }

    //编码规则
    public DbSet<CodeRuleModel> CodeRule { get; set; }

    //编码规则详情
    public DbSet<CodeRuleItemModel> CodeRuleItem { get; set; }

    //全局配置
    public DbSet<SystemConfigModel> SystemConfig { get; set; }

    #endregion

    #region 基础

    //员工
    public DbSet<StaffModel> Staff { get; set; }

    //员工角色
    public DbSet<StaffRoleModel> StaffRole { get; set; }

    //部门
    public DbSet<DepartmentModel> Department { get; set; }

    #endregion

    #region 博客

    //博客用户
    public DbSet<BlogUserModel> BlogUser { get; set; }

    //博客评论
    public DbSet<BlogCommentModel> BlogComment { get; set; }

    //博客发展历程
    public DbSet<BlogDevelopHistoryModel> BlogDevelopHistory { get; set; }

    //博客全局配置
    public DbSet<BlogGlobalConfigModel> BlogGlobalConfig { get; set; }

    //博客菜单
    public DbSet<BlogMenuModel> BlogMenu { get; set; }
    
    //博客登录
    public DbSet<BlogLoginModel> BlogLogin { get; set; }

    //博客项目案例
    public DbSet<BlogProjectCaseModel> BlogProjectCase { get; set; }

    //博客团队成员
    public DbSet<BlogTeamMemberModel> BlogTeamMember { get; set; }

    //博客文章
    public DbSet<BlogTextModel> BlogText { get; set; }

    #endregion

    #region 研发

    //项目客户
    public DbSet<DevelopProjectCustomerModel> DevelopProjectCustomer { get; set; }

    //项目列表
    public DbSet<DevelopProjectListModel> DevelopProjectList { get; set; }

    //项目需求
    public DbSet<DevelopProjectDemandModel> DevelopProjectDemand { get; set; }

    //项目管理
    public DbSet<DevelopProjectManagerModel> DevelopProjectManager { get; set; }

    #endregion

    #region 财务

    //财务用户
    public DbSet<FinanceUserModel> FinanceUser { get; set; }

    //财务用户账户
    public DbSet<FinanceUserAccount> FinanceUserAccount { get; set; }

    //财务分类
    public DbSet<FinanceCategoryModel> FinanceCategory { get; set; }

    //财务明细
    public DbSet<FinanceDetailModel> FinanceDetail { get; set; }

    //财务用户登录记录
    public DbSet<FinanceUserLoginRecord> FinanceUserLoginRecord { get; set; }

    #endregion
}